home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1999 January / EnigmA AMIGA RUN 33 (1999)(G.R. Edizioni)(IT)[!][issue 1999-01].iso / earcd / apus / boothack / old / bh980726.lha / bh980726-2 / ppc_boot.s < prev    next >
Text File  |  1997-02-22  |  5KB  |  357 lines

  1.  # GNU C 2.7.2.1
  2.  # -O1 -fdefer-pop -fomit-frame-pointer -fthread-jumps -fpeephole
  3.  # -ffunction-cse -finline -fpcc-struct-return -fcommon -fgnu-linker -mpowerpc
  4.  # -mnew-mnemonics
  5.  
  6.     .file    "ppc_boot.c"
  7. gcc2_compiled.:
  8.     .section    ".text"
  9.     .align 2
  10.     .globl main
  11.     .type     main,@function
  12.     .long 0x401c
  13. main:
  14.     stwu 1,-16(1)
  15.     mflr 0
  16.     stw 31,12(1)
  17.     stw 0,20(1)
  18.     bl progress_init
  19.     li 3,97
  20.     bl progress
  21.     li 9,0
  22.     lis 0,0xf
  23.     ori 0,0,16959
  24. .L4:
  25.     addi 9,9,1
  26.     cmpw 1,9,0
  27.     bc 4,5,.L4
  28.     li 3,98
  29.     bl progress
  30.     lis 11,0xdf
  31.     ori 11,11,61594
  32.     lis 9,0xdf
  33.     ori 9,9,61596
  34.     li 0,32767
  35.     sth 0,0(11)
  36.     sth 0,0(9)
  37.     li 3,99
  38.     bl progress
  39.     bl goSupervisor
  40.     li 3,100
  41.     bl progress
  42.     bl PPCCacheFlushAll
  43.     mfspr 0,1008       
  44.     lis   3,0          
  45.     ori   3,3,0xc000   
  46.     andc  0,0,3        
  47.     sync               
  48.     isync              
  49.     mtspr 1008,0       
  50.     mfmsr 0            
  51.     li    3,0b110000   
  52.     andc  0,0,3        
  53.     isync              
  54.     mtmsr 0            
  55.     sync               
  56.     
  57.     li 3,101
  58.     bl progress
  59.     lis 9,0xf
  60.     ori 9,9,65280
  61.     lwz 31,0(9)
  62.     addi 31,31,512
  63.     rlwinm 0,31,0,30,31
  64.     addic 0,0,-4
  65.     subf 31,0,31
  66.     addis 9,0,relocate@ha
  67.     addi 11,9,relocate@l
  68.     mr 10,31
  69.     addis 9,0,relocateEnd@ha
  70.     addi 9,9,relocateEnd@l
  71.     subf 9,11,9
  72.     srwi. 9,9,2
  73.     bc 12,0,.L8
  74. .L10:
  75.     lwz 0,0(11)
  76.     stw 0,0(10)
  77.     addi 10,10,4
  78.     addi 11,11,4
  79.     addic. 9,9,-1
  80.     bc 4,0,.L10
  81. .L8:
  82.     li 3,102
  83.     bl progress
  84.     mr 0,31
  85.     mtlr  0             
  86.     blr    
  87.     
  88. .L14:
  89.     b .L14
  90. .Lfe1:
  91.     .size     main,.Lfe1-main
  92.     .align 2
  93.     .globl relocate
  94.     .type     relocate,@function
  95.     .long 0x403c
  96. relocate:
  97.     stwu 1,-32(1)
  98.     mflr 0
  99.     stw 29,20(1)
  100.     stw 30,24(1)
  101.     stw 31,28(1)
  102.     stw 0,36(1)
  103.     li 3,103
  104.     bl progress
  105.     lis 9,0xf
  106.     ori 9,9,65280
  107.     lwz 30,0(9)
  108.     lwz 0,28(30)
  109.     cmpwi 1,0,0
  110.     bc 12,6,.L16
  111.     lwz 0,8(30)
  112.     lwz 9,12(30)
  113.     add 10,0,9
  114.     srwi 10,10,2
  115.     lwz 11,0(30)
  116.     li 31,0
  117.     cmpwi 1,10,0
  118.     addi 10,10,-1
  119.     bc 12,6,.L18
  120. .L19:
  121.     lbz 0,0(11)
  122.     slwi 0,0,8
  123.     lbzu 9,1(11)
  124.     or 0,0,9
  125.     slwi 0,0,8
  126.     lbzu 9,1(11)
  127.     or 0,0,9
  128.     slwi 0,0,8
  129.     lbzu 9,1(11)
  130.     or 0,0,9
  131.     addi 11,11,1
  132.     xor 31,31,10
  133.     xor 31,31,0
  134.     cmpwi 1,10,0
  135.     addi 10,10,-1
  136.     bc 4,6,.L19
  137. .L18:
  138.     li 3,67
  139.     bl progress
  140.     li 3,49
  141.     bl progress
  142.     lwz 0,28(30)
  143.     cmpw 1,0,31
  144.     li 3,45
  145.     bc 4,6,.L21
  146.     li 3,43
  147. .L21:
  148.     bl progress
  149. .L16:
  150.     lwz 29,0(30)
  151.     lwz 9,4(30)
  152.     lwz 0,8(30)
  153.     add 11,9,0
  154.     lwz 0,12(30)
  155.     add 11,11,0
  156.     cmpw 1,9,11
  157.     bc 12,6,.L24
  158. .L25:
  159.     lbz 0,0(29)
  160.     stb 0,0(9)
  161.     addi 29,29,1
  162.     addi 9,9,1
  163.     cmpw 1,9,11
  164.     bc 4,6,.L25
  165. .L24:
  166.     li 3,104
  167.     bl progress
  168.     lwz 0,28(30)
  169.     cmpwi 1,0,0
  170.     bc 12,6,.L27
  171.     lwz 0,8(30)
  172.     lwz 9,12(30)
  173.     add 10,0,9
  174.     srwi 10,10,2
  175.     lwz 11,4(30)
  176.     li 31,0
  177.     cmpwi 1,10,0
  178.     addi 10,10,-1
  179.     bc 12,6,.L29
  180. .L30:
  181.     lbz 0,0(11)
  182.     slwi 0,0,8
  183.     lbzu 9,1(11)
  184.     or 0,0,9
  185.     slwi 0,0,8
  186.     lbzu 9,1(11)
  187.     or 0,0,9
  188.     slwi 0,0,8
  189.     lbzu 9,1(11)
  190.     or 0,0,9
  191.     addi 11,11,1
  192.     xor 31,31,10
  193.     xor 31,31,0
  194.     cmpwi 1,10,0
  195.     addi 10,10,-1
  196.     bc 4,6,.L30
  197. .L29:
  198.     li 3,67
  199.     bl progress
  200.     li 3,50
  201.     bl progress
  202.     lwz 0,28(30)
  203.     cmpw 1,0,31
  204.     li 3,45
  205.     bc 4,6,.L32
  206.     li 3,43
  207. .L32:
  208.     bl progress
  209. .L27:
  210.     lwz 9,4(30)
  211.     lwz 0,20(30)
  212.     add 9,9,0
  213.     lwz 0,16(30)
  214.     subf 11,0,9
  215.     add 29,29,0
  216.     cmpw 1,9,11
  217.     bc 12,6,.L35
  218. .L36:
  219.     lbzu 0,-1(29)
  220.     stbu 0,-1(9)
  221.     cmpw 1,9,11
  222.     bc 4,6,.L36
  223. .L35:
  224.     li 3,105
  225.     bl progress
  226.     lis 11,0xfff0
  227.     lwz 9,4(30)
  228.     addis 9,9,0x4000
  229.     stw 9,0(11)
  230.     lwz 9,4(30)
  231.     addis 0,9,0x4000
  232.     stw 0,0(9)
  233.     li 3,75
  234.     bl progress
  235.     lwz 0,16(30)
  236.     cmpwi 1,0,0
  237.     bc 12,6,.L38
  238.     lwz 5,20(30)
  239.     addis 5,5,0xc000
  240.     subf 4,0,5
  241.     b .L39
  242. .L38:
  243.     li 4,0
  244. .L39:
  245.     lis 3,0x6170
  246.     ori 3,3,30067
  247.     lwz 7,4(30)
  248.     addi 7,7,12
  249.     mtlr 7 
  250.     blr    
  251.     
  252. .L42:
  253.     b .L42
  254. .Lfe2:
  255.     .size     relocate,.Lfe2-relocate
  256.     .align 2
  257.     .globl goSupervisor
  258.     .type     goSupervisor,@function
  259.     .long 0x400c
  260. goSupervisor:
  261.     stwu 1,-16(1)
  262.     mflr 0
  263.     stw 0,20(1)
  264.     addis 9,0,setPRend@ha
  265.     addi 9,9,setPRend@l
  266.     addis 11,0,setPR@ha
  267.     addi 11,11,setPR@l
  268.     subf 9,11,9
  269.     lis 10,0xfff0
  270.     ori 10,10,1792
  271.     srawi 9,9,2
  272.     addze. 9,9
  273.     bc 4,1,.L47
  274. .L49:
  275.     lwz 0,0(11)
  276.     stw 0,0(10)
  277.     addi 10,10,4
  278.     addi 11,11,4
  279.     addic. 9,9,-1
  280.     bc 12,1,.L49
  281. .L47:
  282.     bl PPCCacheFlushAll
  283.     trap 
  284.     
  285.     lwz 0,20(1)
  286.     mtlr 0
  287.     addi 1,1,16
  288.     blr
  289. .Lfe3:
  290.     .size     goSupervisor,.Lfe3-goSupervisor
  291.     .align 2
  292.     .globl progress_init
  293.     .type     progress_init,@function
  294.     .long 0x4008
  295. progress_init:
  296.     stwu 1,-16(1)
  297.     lis 9,0xf
  298.     ori 9,9,65280
  299.     lwz 9,0(9)
  300.     lwz 11,24(9)
  301.     lis 0,0x5341
  302.     ori 0,0,22085
  303.     stw 0,0(11)
  304.     addi 9,11,4
  305.     lis 0,0x424f
  306.     ori 0,0,20308
  307.     stw 0,4(11)
  308.     stwu 11,4(9)
  309.     li 0,0
  310.     stw 0,4(9)
  311.     addi 1,1,16
  312.     blr
  313. .Lfe4:
  314.     .size     progress_init,.Lfe4-progress_init
  315.     .align 2
  316.     .globl progress
  317.     .type     progress,@function
  318.     .long 0x4008
  319. progress:
  320.     stwu 1,-16(1)
  321.     lis 9,0xf
  322.     ori 9,9,65280
  323.     lwz 9,0(9)
  324.     lwz 9,24(9)
  325.     lwz 0,12(9)
  326.     addic 0,0,16
  327.     stbx 3,9,0
  328.     lwz 0,12(9)
  329.     addic 0,0,1
  330.     stw 0,12(9)
  331.     addi 1,1,16
  332.     blr
  333. .Lfe5:
  334.     .size     progress,.Lfe5-progress
  335.     .text
  336. .align 4
  337. setPR:
  338. /* Increase the return EA so we get to the next instruction */
  339. mtsprg       1,1
  340. mfsrr0       1
  341. addi         1,1,4
  342. mtsrr0       1
  343. mfsprg       1,1
  344. /* Fiddle the PR bit */
  345. mfsrr1       0
  346. rlwinm       0,0,0,18,16
  347. mtsrr1       0
  348. rfi
  349. setPRend:
  350.  
  351.     .text
  352. .align 4
  353. relocateEnd:
  354. nop
  355.  
  356.     .ident    "GCC: (GNU) 2.7.2.1"
  357.